Recursion and Call Stack
Every recursive solution needs a termination condition.
Each call creates a call-stack frame.
Recursive calls are unwound in reverse order.
Deep recursion can cause stack overflow.
Many recursive algorithms can be converted into iterative solutions.